<?php

namespace SisesporteAdmin\Controller;

use SisesporteAdmin\Form\ModalidadeForm;
use Zend\View\Model\ViewModel;

class ModalidadeController extends CrudController {

    public function __construct() {
        $this->entity = "Sisesporte\Entity\Modalidade";
        $this->form = "SisesporteAdmin\Form\ModalidadeForm";
        $this->service = "Sisesporte\Service\ModalidadeService";
        $this->controller = "modalidade";
        $this->route = "sisesporte-admin";
    }

    public function indexAction() {
        $data = $this->getEm()
                ->getRepository($this->entity)
                ->findAll();

        $localidade = $this->getEm()
                ->getRepository("Sisesporte\Entity\Localidade")
                ->findAll();

        $localModalidade = $this->getEm()
                ->getRepository("Sisesporte\Entity\LocalModalidade")
                ->findAll();


//        echo '<pre>';
//        var_dump($data[18]->getLocalModalidade());
//        echo '</pre>';
//        exit;


        return new ViewModel(array('data' => $data, 'localidade' => $localidade, 'localModalidade' => $localModalidade ));
    }

    public function newAction() {
        $form = new ModalidadeForm($this->getEm());

        $request = $this->getRequest();

        if ($request->isPost()) {
            $array = $request->getPost();
            $array['stAtivo'] = TRUE;
            $form->setData($array);
            $service = $this->getServiceLocator()->get($this->service);
            $obj = $request->getPost()->toArray();
            $service->insert($obj);

            if ($obj) {
                $this->msg = TRUE;
            }
        }

        return new ViewModel(array('form' => $form, 'msg' => $this->msg));
    }

    public function editAction() {
        $form = new ModalidadeForm($this->getEm());
        $request = $this->getRequest();

        $repository = $this->getEm()->getRepository($this->entity);
        $entity = $repository->find($this->params()->fromRoute('id', 0));

        if ($this->params()->fromRoute('id', 0)) {
            $array = $entity->toArray();
            $array['stAtivo'] = TRUE;
            $form->setDefaultsFromEntity($entity);
        }

        if ($request->isPost()) {
            $form->setData($request->getPost());
            if ($form->isValid()) {
                $service = $this->getServiceLocator()->get($this->service);
                $service->update($this->params()->fromRoute('id', 0), $request->getPost()->toArray());
                $this->msg = TRUE;
            }
        }

        return new ViewModel(array('form' => $form, 'entity' => $entity->toArray(), 'msg' => $this->msg));
    }
    
    public function deleteAction() {
        $service = $this->getServiceLocator()->get($this->service);
        $service->delete($this->params()->fromRoute('id', 0));
       
    }

}
